perm filename TIM81.XGP[S81,JMC] blob sn#581750 filedate 1981-04-23 generic text, type T, neo UTF8
/LMAR=0/XLINE=3/FONT#0=BAXL30/FONT#1=BAXI30/FONT#2=BAXB30/FONT#3=BAXS30/FONT#4=GRFX25/FONT#9=MS25















␈↓ ↓H␈↓␈↓ ¬|Supplement


␈↓ ↓H␈↓␈↓ ε5for


␈↓ ↓H␈↓α␈↓ ∧jLISP Timing Evaluation Project






␈↓ ↓H␈↓␈↓ ¬;Principal Investigator

␈↓ ↓H␈↓␈↓ ¬aJohn McCarthy




␈↓ ↓H␈↓␈↓ ¬;Associate Investigator

␈↓ ↓H␈↓␈↓ ¬]Richard Gabriel
␈↓ ↓H␈↓α␈↓ <1


␈↓ ↓H␈↓α␈↓ ∧V1.  LISP Timing Evaluation Project

␈↓ ↓H␈↓␈↓αPersonnel: ␈↓ John McCarthy, Richard Gabriel ␈↓↓Student Research Assistants:␈↓ ␈↓↓␈↓βE␈↓↓␈↓-

␈↓ ↓H␈↓The Lisp Timing Evaluation Project began at the end of February and is slowly taking shape.
␈↓ ↓H␈↓Originally simply a timing project, other evaluations are being considered.

␈↓ ↓H␈↓The thrust of the project is to provide both objective and subjective bases for rational choice
␈↓ ↓H␈↓among the various Lisps and Lisp systems available today or to be available in the near future.
␈↓ ↓H␈↓The objective measures are to be provided through the use of benchmarks which will be run on
␈↓ ↓H␈↓the various systems in the test with measurements made in terms of CPU time. These benchmarks
␈↓ ↓H␈↓will be/are being provided by people at the various sites in order to provide a range of interesting
␈↓ ↓H␈↓benchmarks, not merely a few arti␈↓βC␈↓cial ones. This latter point is important for several reasons.
␈↓ ↓H␈↓First, it will test the various systems with the range of real applications that are going on. Second,
␈↓ ↓H␈↓it will bring too light the esoteric features used by research programmers (and, hence, shed some
␈↓ ↓H␈↓light on Hearn's claim that a relatively small subset of Lisp will su␈↓β@␈↓ice for most research
␈↓ ↓H␈↓programming in Lisp).

␈↓ ↓H␈↓In the event that benchmarks covering the range of desired features are not available, `arti␈↓βC␈↓cial'
␈↓ ↓H␈↓benchmarks will be supplied. Either benchmarks will be solicited from people and systems that are
␈↓ ↓H␈↓known to perform such operations or they will be written explicitly for the situation.

␈↓ ↓H␈↓The subjective measures are descriptions of the systems provided by the volunteers along with
␈↓ ↓H␈↓experiences with the translating the various benchmarks: since the benchmarks are not restricted
␈↓ ↓H␈↓in any way a translation phase for each site is required. The tools and problems associated with
␈↓ ↓H␈↓each translation (with the original and translated programs as evidence) can be interpreted as a
␈↓ ↓H␈↓measure of the expressive power of a given Lisp/Lisp system.

␈↓ ↓H␈↓A ␈↓βC␈↓nal measure of the non-language e␈↓β@␈↓iciency will be attempted, though there will be some
␈↓ ↓H␈↓technical problems here. For example, garbage collection, system paging overhead, and external
␈↓ ↓H␈↓loads on the machines a␈↓β@␈↓ect the `usability' of a Lisp without being directly associated with the
␈↓ ↓H␈↓language.

␈↓ ↓H␈↓The following is a list of the systems to be tested as known at this point:

␈↓ ↓H␈↓        InterLisp on MAX, Dolphin, Dorado
␈↓ ↓H␈↓        MacLisp on SAIL
␈↓ ↓H␈↓        NIL on S-1
␈↓ ↓H␈↓        InterLisp on SUMEX
␈↓ ↓H␈↓        UCILisp on Rutgers
␈↓ ↓H␈↓        SpiceLisp on PERQ
␈↓ ↓H␈↓        Lisp Machine (Symbolics, CADR)
␈↓ ↓H␈↓        MacLisp on AI, MC, NIL on VAX
␈↓ ↓H␈↓        InterLisp on F2
␈↓ ↓H␈↓        Standard Lisp on TOPS-10, B-1700 
␈↓ ↓H␈↓        Lisp370
␈↓ ↓H␈↓        TLC-Lisp on Z-80
␈↓ ↓H␈↓        muLisp on Z-80
␈↓ ↓H␈↓        Muddle on DMS
␈↓ ↓H␈↓        Rutgers Lisp
␈↓ ↓H␈↓        Multics MacLisp
␈↓ ↓H␈↓αLISP Timing Evaluation Project␈↓ :2


␈↓ ↓H␈↓        Jericho InterLisp
␈↓ ↓H␈↓        Cromemco Lisp on Z80
␈↓ ↓H␈↓        Franz Lisp on VAX UNIX
␈↓ ↓H␈↓        UTILisp


␈↓ ↓H␈↓Some proposed features of Lisps that will be tested, either by naturally occurring benchmarks or
␈↓ ↓H␈↓by arti␈↓βC␈↓cial ones are:

␈↓ ↓H␈↓        Array reference and storage (random access)
␈↓ ↓H␈↓        Array reference and storage (matrix access)
␈↓ ↓H␈↓        Array reference and storage (matrix inversion)
␈↓ ↓H␈↓        Short list structure (records, hunks...)
␈↓ ↓H␈↓        Long list structure (cdr access)
␈↓ ↓H␈↓        CAR heavy structures
␈↓ ↓H␈↓        CDR heavy structures
␈↓ ↓H␈↓        Interpreted function calls
␈↓ ↓H␈↓        Compiled function calls
␈↓ ↓H␈↓        Smashed function calls
␈↓ ↓H␈↓        Table function calls (FUNCALL, SUBRCALL)
␈↓ ↓H␈↓        Tail recursion (?)
␈↓ ↓H␈↓        Block compiling
␈↓ ↓H␈↓        Reader speed
␈↓ ↓H␈↓        Property list structures
␈↓ ↓H␈↓        Atom structures (saturated obarrays)
␈↓ ↓H␈↓        Internal loops
␈↓ ↓H␈↓        Trigonometric functions
␈↓ ↓H␈↓        Arithmetic (floating and fixed)
␈↓ ↓H␈↓        Special variable lookup
␈↓ ↓H␈↓        Local variable lookup
␈↓ ↓H␈↓        CONS time
␈↓ ↓H␈↓        GC time
␈↓ ↓H␈↓        Compiled code load time
␈↓ ↓H␈↓        EQ vs EQUAL test time
␈↓ ↓H␈↓        Arithmetic predicates
␈↓ ↓H␈↓        Type determination


␈↓ ↓H␈↓The remaining work is to complete the gathering and initial evaluation of the benchmarks,
␈↓ ↓H␈↓collecting results from the various systems, collection of system descriptions, factoring out Lisp
␈↓ ↓H␈↓versus system overhead from raw data, evaluation of the impact of system overhead and garbage
␈↓ ↓H␈↓collection, and publication and distribution of results. Since some machines and systems are not yet
␈↓ ↓H␈↓available for testing, the project will be completed by June 1982.